#ifndef ERROR_H
#define ERROR_H
#include <iostream>
#define PI 3.14159265358979323846264338327950288419716939937510
#define FILEXT ".or"
#define throw_error(ERROR) {throw(ERROR);}
#define UNUSED (void)
using namespace std;

typedef enum ErrorType {
	ERROR_RETURNING=-1,
	ERROR_UNKNOWN=0,
	ERROR_LEXER,
	ERROR_PARSER,
	ERROR_OPERATION,
	ERROR_VARIABLE,
	ERROR_ARGUMENTS,
	ERROR_ARGUMENTCOUNT,
	ERROR_MISMATCHBRACKETS,
	ERROR_INLINECODE,
	ERROR_ALIAS,
	ERROR_FILE,
	ERROR_ARRAYBOUNDS,
	ERROR_DIR,
	ERROR_SOCKET,
	ERROR_MEMBERS,
	ERROR_MANTISSA,
	ERROR_MAX
} ErrorType;

string ErrorMessage( ErrorType );
void _throw_error( ErrorType );

#endif
